The present application claims the benefit of priority under 35 U.S.C. xc2xa7119 to Taiwan Application No. 089109970 entitled xe2x80x9cEncoding and Decoding System In An Optical Disk Storage Device,xe2x80x9d filed on May 24, 2000.
1. Field of the Invention
The invention relates in general to encoding and decoding systems for optical disk storage devices, and more particularly to an encoding and decoding system in an optical disk storage device of a compact disk (CD) and digital video disk (DVD) dual system.
2. Description of the Related Art
An optical disk storage device of CD and DVD dual system is capable of encoding/decoding data of either CD or DVD. If it can be more effective in the hardware design of the encoding/decoding system in an optical storage device of the CD and DVD dual system, it leads to a more compact hardware design and thus the area that the hardware requires decreases. For the purpose of a more effective hardware design, the underlying theory for encoding/decoding in all optical disk storage device is first discussed.
For providing reliable and efficient encoding/decoding of the user data, it is necessary to employ error correcting codes in disk storage systems. Although there are many different error correction codes (ECC) for this purpose, Reed-Solomon (RS) codes are the most commonly used ECC in disk storage systems.
With RS codes, input data stream is processed as a sequence of symbols and all of the symbols are elements of a finite field GF(2w), where w denotes the number of bits per symbol. An RS code is a (N, K) block code, where an input data block of K message symbols is encoded, resulting in an output data block of N symbols, or called a codeword of length N. Besides, the codeword of N symbols consists of a parity code of 2T=N-K symbols.
Every symbol of the input data block of K message symbols is associated with a coefficient of a polynomial I(x). Similarly, every symbol of the 2T parity symbols is associated with a coefficient of a polynomial R(x). In addition, the N symbols of a codeword are associated with the respective coefficients of a polynomial C(x). The polynomial R(x) is defined by the expression:
R(x)=(I(x)xc2x7xm)MOD(G(x)), 
where G(x) is the generator polynomial of degree m and m=2T. The G(x) is expressed as follows:
G(x)=Πk=0xcx9c(2Txe2x88x921)(x+xcex1k). 
Then, a codeword polynomial is obtained by:
C(x)=(I(x)xc2x7xm)+R(x). 
The above operations is performed by an RS decoder, resulting in a codeword corresponding to the codeword polynomial C(x). On the other hand, an RS decoder receives codewords transmitted through the noisy communication channel, where the received codewords are with random erroneous symbols. For the correction of the erroneous symbols occurred in the received codewords, the RS decoder performs the decoding process including the following steps: (i) compute syndromes Si; (ii) compute the coefficients of an error locator polynomial using the syndromes; (iii) compute the roots of the error locator polynomial; (iv) compute the error values by using the roots of the error locator polynomial and the syndromes.
Referring now to FIG. 1, it illustrates a conventional structure of the encoding/decoding system in CD/DVD storage devices. During the process of writing data into a disk storage medium, the input data received from a host are first stored in a data buffer 102 via the bus 101. A cyclic redundancy check (CRC) generator and correction validator 104 then reads the data stored in the data buffer 102 and generates the CRC symbols, where the input data with the CRC symbols are stored in the data buffer 102 again. The input data with the CRC symbols are read from the data buffer 102, which are randomized by a randomizer/derandomizer 106. The randomized data are then stored in the data buffer 102. For different optical storage medium, the writing operation then proceeds to different processes.
If the optical storage medium 108 is a CD, the data stored in the data buffer 102 are processed through a CD P/Q encoder/decoder 110, a C2 encoder/decoder 112, an interleaver/deinterleaver 114, and a C1 encoder/decoder 116. After that, the processed data are written into the CD. Besides, during encoding, a static random access memory (SRAM) 118 is used for storing the processing data through a bus 117.
When the optical storage medium 108 is a DVD, the data stored in the data buffer 102 are processed by using a DVD inner/outer encoder/decoder 120. After processing, the encoded data are written to the DVD. In addition, some DVDs include a burst cutting area (BCA) on the DVDs for optionally storing recording information after the completion of the writing process. If the optical storage medium 108 is a DVD with a BCA, a BCA ECC encoder/decoder 122 can be used to process the recording information. The encoded data appended with the encoded recording information are then written into the DVD.
In the process of writing data into a disk storage medium, the CD P/Q encoder/decoder 110, the C2 encoder/decoder 112, the interleaver/deinterleaver 114, the C1 encoder/decoder 116, the DVD inner/outer encoder/decoder 120, and the BCA ECC encoder/decoder 112 employ generator polynomials with respective forms. Besides, different length of symbols are involved in the encoding computation with their respective polynomials.
During the reading of the data stored in a CD/DVD, the process is run in reverse. For the sake of brevity, it will not be described.
In the conventional structure of the error correction system of the CD/DVD storage device shown in FIG. 1, there are drawbacks as follows.
(1) When the error correction system is configured for processing data in CD data format, the DVD inner/outer encoder/decoder 120, and the BCA ECC encoder/decoder 112 are idle. On the other hand, when the system is configured for processing data in DVD data format, the CD P/Q encoder/decoder 110, the C2 encoder/decoder 112, the interleaver/deinterleaver 114, and the C1 encoder/decoder 116 are idle. Thus, no matter what the configuration for processing data in CD/DVD, a part of the circuitry are idle, resulting in the employment of the system components being low in effectiveness.
(2) When the error correction system is configured for processing data in CD data format, the interleaver/deinterleaver 114 spends additional time for access to the data buffer 102 for interleaving or deinterleaving. Thus, this increases the latency of the storage system especially in multimedia applications where large blocks of audio/video data must be read from the storage system. In this way, when the system is employed in the audio/video playback or recording applications, the quality of the playback or recording would be affected.
It is therefore an object of the invention to provide an encoding/decoding system for an optical storage device, which employs a shareable Reel-Solomon (RS) encoder/decoder. According to the invention, the hardware cost of an encoding/decoding system is lowered and the effectiveness of employment of the hardware components is increased. In addition, the invention involves the integration of interleaving/deinterleaving with C1 encoding/decoding or with C2 encoding/decoding, resulting in the lowering of the latency time.
According to the object of the invention, it provides an encoding/decoding system in an optical disk storage device, for performing compact disc/digital video disk (CD/DVD) encoding/decoding of data which is stored in a data buffer, the encoding/decoding system comprising: a C1 address mapper, a C2 address mapper, a CD P/Q address mapper, a DVD inner/outer address mapper, and a shareable Reel-Solomon (RS) encoder/decoder.
The C1 address mapper is for accessing to the data buffer according to access sequence stored in the C1 address mapper. The C2 address mapper is for accessing to the data buffer according to access sequence stored in the C2 address mapper. The CD P/Q address mapper is for accessing to the data buffer according to access sequence stored in the CD P/Q address mapper. The DVD inner/outer address mapper is for accessing to the data buffer according to access sequence stored in the DVD inner/outer address mapper. The shareable RS encoder/decoder is capable of selectively being coupled to either one of the C1 address mapper, the C2 address mapper, the CD P/Q address mapper, or the DVD inner/outer address mapper.
When the encoding/decoding system is encoding, the shareable RS encoder/decoder employs a generation polynomial of RS code to generate a first codeword of N symbols including a parity code of 2T symbols, where the values of N and 2T are associated with the selected address mapper.
When the encoding/decoding system is decoding, the shareable RS encoder/decoder generates a plurality of syndromes, Sk, where k=0xcx9c15 and k is a positive integer, an error-erasure locator polynomial and an error-erasure evaluator polynomial for obtaining an error value to complete the error correction. Besides, a syndrome Sk is set to zero if k is greater than or equal to 2T.
For the encoding of data, the generation polynomial G(x) is:
G(x)=Πk=0xcx9c(2Txe2x88x921)(x+xcex1k). 
For the decoding of data, the syndromes are obtained from:             S      k        =                            ∑                      i            =                                          0                ~                N                            -              1                                      ⁢                  xe2x80x83                ⁢                              (                                          r                i                            ⁢                              α                ik                                      )                    ⁢                      xe2x80x83                    ⁢          for          ⁢                      xe2x80x83                    ⁢          k                    =                                    0            ~            2                    ⁢          T                -        1              ,
where ri for i=0xcx9cNxe2x88x921 represents the N symbols of the codeword.
For both the encoding or decoding, xcex1 is an element of a finite field GF(28) and is a root of a primitive polynomial P(x).
P(x)=x8+x4+x3+x2+1. 